<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>

    /*
    * 有个人想知道，一年之内一对兔子能繁殖多少对？于是就筑了一道围墙把一对兔子关在里面。已知一对兔子每个月可以生一对小兔子，而一对兔子从出生后第3个月起每月生一对小兔子。假如一年内没有发生死亡现象，那么，一对兔子一年内（12个月）能繁殖成多少对？（兔子的规律为数列，1，1，2，3，5，8，13，21）
    * */
/*
*       1，1，2，3，5，8，13，21
*
*       如何写循环：
*           1 找出规律，得到循环的代码
*               从第3个数字开始：
*                   第n个数字 = 第n-1个数字 + 第n-2个数字
*           2 找出循环的次数
*               规律是从第三个数字开始的
*               求得是第12个数字
*               for(var i = 3; i <= 12 ; i++){}
*           3 把具体的值变成变量
*               1   var x =1;           var x = 1;
*               1   var y = 2;          var y = 1;
*               2   var z = y + x;      var z = y + x;    下一次需要的前两个数字就是：x = y; y = z;
*               3   var i = z + y;          z = y + x;    下一次的x = 上一次的y ，下一次的y = 上一次的z：  x = y; y = z;
*               5   var k = i + z;          z = y + x;
*
*               ---> 上次的和，作为下一次的第n-1个数字，上次的第n-1个数字，作为下次的n-2个数字
*               开始定可以在循环中执行的多个变量
*                   规定： 使用x 表示第n-2个数字，使用y表示第n-1个数字，使用z表示和
*
*
*                   最终：在循环体中的代码：
*                       z = y + x;
*                       x = y;
*                       y = z;
* */
//    var x = 1;
//    var y = 1;
//    var z ;
//    for(var i = 3; i <= 12; i++){
//        z = y + x;
//        x = y;
//        y = z;
//    }



    /*
    *   1，1，2，3，5，8，13，21
    *
    * */

    // 直接观察的规律，得出的结论：
    //  第n个数字 = 第n-1个 + 第n-2个， 从第三个开始求到12个结束
    var x = 1;
    var y = 1;
    for(var i = 3; i <= 12; i++){
        var z = y + x;
        //把y作为下一次循环的第n-2个数字
        x = y;
        //把z作为下一次的n-1个数字
        y = z;
    }
</script>
</body>
</html>